package com.jic.market.service;

import com.jic.common.base.vo.AdminOperate;
import com.jic.common.base.vo.PageResult;
import com.jic.common.base.vo.RestResult;
import com.jic.market.entity.PromotionTemplate;
import com.jic.market.enums.PromotionTypeEnum;
import com.jic.market.request.manager.template.TemplateDeleteRequest;
import com.jic.market.request.manager.template.TemplateEditRequest;
import com.jic.market.request.manager.template.TemplatePageQueryRequest;
import lombok.Data;

/**
* 活动模板表
* @author :
* @email :
* @since : 2020-03-12 06:46:27
* @version : v1.0.0
*/
public interface  PromotionTemplateService {

    /**
     * 保存模板，成功则返回模板id，不成功返回null
     * @param originPromotionService 需要使用模板功能的活动服务
     * @return 模板id
     */
    Long saveTemplate(OriginPromotionService originPromotionService);

    /**
     * 分页查询
     * @param request
     * @return
     */
    RestResult<PageResult<PromotionTemplate>> queryPage(TemplatePageQueryRequest request);

    /**
     * 编辑
     * @param request
     * @return
     */
    RestResult<Long> edit(TemplateEditRequest request);

    /**
     * 删除
     * @param request
     * @return
     */
    RestResult<Long> delete(TemplateDeleteRequest request);


    interface OriginPromotionService{
        /**
         * 复制相关活动
         * @return 活动id
         */
        CopyResult copy();
    }

    @Data
    class CopyResult{
        // 活动主键id
        private Long id;
        // 活动id
        private String promotionId;
        // 活动类型
        private PromotionTypeEnum promType;
        // 你需要保存的模板名称
        private String templateName;
        private AdminOperate adminOperate;

    }

}
